package com.qyx.pmpucat.service;

import com.qyx.pmpucat.dto.QuestionDTO;
import com.qyx.pmpucat.entity.Question;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 问题服务接口
 */
public interface QuestionService {
    
    /**
     * 创建问题
     *
     * @param questionDTO 问题信息
     * @return 问题ID
     */
    Long createQuestion(QuestionDTO questionDTO);
    
    /**
     * 更新问题
     *
     * @param questionDTO 问题信息
     */
    void updateQuestion(QuestionDTO questionDTO);
    
    /**
     * 删除问题
     *
     * @param id 问题ID
     */
    void deleteQuestion(Long id);
    
    /**
     * 获取问题详情
     *
     * @param id 问题ID
     * @return 问题详情
     */
    Question getQuestionDetail(Long id);
    
    /**
     * 根据问卷ID获取问题列表
     *
     * @param questionnaireId 问卷ID
     * @return 问题列表
     */
    List<Question> getQuestionsByQuestionnaireId(Long questionnaireId);

    /**
     * 导入问题
     *
     * @param file Excel文件
     * @param questionnaireId 问卷ID
     * @return 导入结果
     */
    String importQuestion(MultipartFile file, Long questionnaireId);

    /**
     * 导出问题到Excel
     *
     * @param questionnaireId 问卷ID
     * @param response
     * @return Excel文件字节数组
     */
    ResponseEntity<byte[]> exportQuestionsToExcel(Long questionnaireId, HttpServletResponse response);
}